package com.luofan.service;

import com.github.pagehelper.PageInfo;
import com.luofan.common.result.ResultCodeEnum;
import com.luofan.entity.dto.UpdatePasswordDTO;
import com.luofan.entity.dto.UserQueryDTO;
import com.luofan.entity.po.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.luofan.entity.vo.LoginVO;
import com.luofan.entity.vo.UserVO;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author 
 * @since 2025-03-26
 */
public interface UserService extends IService<User> {

    //登陆
    LoginVO login(User user);

    //创建用户
    ResultCodeEnum createUser(User user);

    //修改个人信息
    ResultCodeEnum updateUser(User user);

    //管理员 禁用，解禁用户
    ResultCodeEnum forbiddenUser(User user);

    //重置密码
    ResultCodeEnum resetPasswords(Long id);

    //修改密码
    ResultCodeEnum updatePassword(UpdatePasswordDTO passwordDTO);

    //管理员 更改用户所属教研室
    ResultCodeEnum updateUserSection(User user);

    //管理员 更改用户权限
    ResultCodeEnum updateUserRole(User user);

    //管理员 根据条件 分页获取用户信息
    PageInfo<UserVO> listUserByCondition(UserQueryDTO userQueryDTO);
}
